430. Flatten a Multilevel Doubly Linked List - LeetCode Solution


LinkedList DFS

Python Code:

"""
# Definition for a Node.
class Node:
    def __init__(self, val, prev, next, child):
        self.val = val
        self.prev = prev
        self.next = next
        self.child = child
"""

class Solution:
    def trav(self,head1):
        root = head1
        if not root:
            return None
        while root:
            a = None
            if root.child:
                a = self.trav(root.child) 
            if a:
               
                a.prev = head1
                
                temp = root.next
               
                root.next = a
                while root.next:
                    root = root.next
                
                root.next = temp

            root = root.next
        return head1
                
                
    def flatten(self, head: 'Node') -> 'Node':
        if not head:
            return None
        
        
        root = self.trav(head)
        temp = root
        temp.prev = None
        temp.child= None
        last = temp
        temp = temp.next
        while temp:
            temp.child = None
            temp.prev = last
            last = temp
            temp = temp.next
            
        
        return root


Comments

Submit
0 Comments
More Questions

734A - Anton and Danik
1300B - Assigning to Classes
1647A - Madoka and Math Dad
710A - King Moves
1131A - Sea Battle
118A - String Task
236A - Boy or Girl
271A - Beautiful Year
520B - Two Buttons
231A - Team
479C - Exams
1030A - In Search of an Easy Problem
158A - Next Round
71A - Way Too Long Words
160A - Twins
1A - Theatre Square
1614B - Divan and a New Project
791A - Bear and Big Brother
1452A - Robot Program
344A - Magnets
96A - Football
702B - Powers of Two
1036A - Function Height
443A - Anton and Letters
1478B - Nezzar and Lucky Number
228A - Is your horseshoe on the other hoof
122A - Lucky Division
1611C - Polycarp Recovers the Permutation
432A - Choosing Teams
758A - Holiday Of Equality